package org.dromara.oce.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.oce.domain.OceAccount;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 巨量管家账号业务对象 oce_account
 *
 * @author dsbb
 * @date 2025-05-30
 */
@Data
@EqualsAndHashCode()
@AutoMapper(target = OceAccount.class, reverseConvertGenerate = false)
public class OceAccountBo implements Serializable {

    /**
     * 账号id
     */
    @NotNull(message = "账号id不能为空", groups = { EditGroup.class })
    private Long accountId;

    /**
     * 账号名称
     */
    private String accountName;

    /**
     * 新版账号角色
     */
    private String accountRole;

    /**
     * 授权有效状态：0-无效；1-有效；
     */
    private Integer validStatus;

    /**
     * 用户名
     */
    private String displayName;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 授权的应用id
     */
    private String appId;

    /**
     * 是否敏感物料授权：0-未授权；1-已授权；
     */
    private Integer materialAuthStatus;

    /**
     * access_token有效期（秒）
     */
    private Integer accessTokenExpires;

    /**
     * access_token到期时间
     */
    private LocalDateTime accessTokenExpiresTime;

    /**
     * refresh_token有效期（秒）
     */
    private Integer refreshTokenExpires;

    /**
     * refresh_token到期时间
     */
    private LocalDateTime refreshTokenExpiresTime;

}
